! Copyright 2014-2018 The PySCF Developers. All Rights Reserved.
!
! Licensed under the Apache License, Version 2.0 (the "License");
!  you may not use this file except in compliance with the License.
!  You may obtain a copy of the License at
!
!      http://www.apache.org/licenses/LICENSE-2.0
!
!  Unless required by applicable law or agreed to in writing, software
!  distributed under the License is distributed on an "AS IS" BASIS,
!  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
!  See the License for the specific language governing permissions and
!  limitations under the License.

module m_upper

  implicit none

  contains

!
! http://www.star.le.ac.uk/~cgp/fortran.html
!
function upper(string) result(r)
  implicit none
  !! external
  character(len=*), intent(in) :: string
  character(len=len(string)) :: r 
  !! internal
  integer :: j

  do j = 1,len(string)
    if(string(j:j) >= "a" .and. string(j:j) <= "z") then
      r(j:j) = achar(iachar(string(j:j)) - 32)
    else
      r(j:j) = string(j:j)
    end if
  end do
  
end function !upper

end module !m_upper


